﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Globalization;

namespace Medianamik.Core.Security
{
    //public class UserNode : SystemNode<UserNode>, ISystemNode, INamedNode 
    //{
    //    public UserNode()
    //        : base()
    //    {
    //    }

    //    public string Name
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["Name"].GetValue<string>()
    //                ?? string.Empty;
    //        }

    //        set
    //        {
    //            DefaultInstance.Properties["Name"].SetValue(value);
    //        }
    //    }

    //    public override Guid NodeTypeID
    //    {
    //        get
    //        {
    //            return SystemNodeTypeID;
    //        }
    //        internal set
    //        {
    //            ;
    //        }
    //    }

    //    public override Guid SystemNodeTypeID
    //    {
    //        get { return MedianamikTypes.MedianamikUser; }
    //    }

    //    public override Guid NamePropertyId
    //    {
    //        get
    //        {
    //            return MedianamikProperties.UserName ;
    //        }
    //    }
        
    //    public string Password
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["Password"].GetValue<string>()
    //                ?? string.Empty;
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["Password"].SetValue(value);
    //        }
    //    }
    //    public string Email
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["Email"].GetValue<string>()
    //                ?? string.Empty;
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["Email"].SetValue(value);
    //        }
    //    }
    //    public string Comment
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["Comment"].GetValue<string>()
    //                ?? string.Empty;
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["Comment"].SetValue(value);
    //        }
    //    }
    //    public string PasswordQuestion
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["PasswordQuestion"].GetValue<string>()
    //                ?? string.Empty;
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["PasswordQuestion"].SetValue(value);
    //        }
    //    }

    //    public string PasswordAnswer
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["PasswordAnswer"].GetValue<string>()
    //                ?? string.Empty;
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["PasswordAnswer"].SetValue(value);
    //        }
    //    }
    //    public bool IsApproved
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["IsApproved"].GetValue<bool>();
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["IsApproved"].SetValue(value);
    //        }
    //    }
    //    public bool IsLockedOut
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["IsLockedOut"].GetValue<bool>();
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["IsLockedOut"].SetValue(value);
    //        }
    //    }
    //    public DateTime CreationDate
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["CreationDate"].GetValue<DateTime>();
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["CreationDate"].SetValue(value);
    //        }
    //    }

    //    public DateTime LastLoginDate
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["LastLoginDate"].GetValue<DateTime>();
    //        }
    //    }
    //    public DateTime LastActivityDate
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["LastActivityDate"].GetValue<DateTime>();
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["LastActivityDate"].SetValue(value);
    //        }
    //    }
    //    public DateTime LastPasswordChangedDate
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["LastPasswordChangedDate"].GetValue<DateTime>();
    //        }
    //    }
    //    public DateTime LastLockedOutDate
    //    {
    //        get
    //        {
    //            return DefaultInstance.Properties["LastLockedOutDate"].GetValue<DateTime>();
    //        }
    //    }

    //    #region Many2Manys
       
    //    public IEnumerable<Guid> GroupIds
    //    {
    //        get
    //        {
    //            return ((ManyToManyNodeProperty)DefaultInstance.Properties["Groups"]).Values;
    //        }
    //        set
    //        {
    //            DefaultInstance.Properties["Groups"].SetValue(value);
    //        }
    //    }

        
    //    #endregion
    //}
}
